package com.neuedu.corejava.jdbc.dao;

import java.util.List;

import com.neuedu.corejava.jdbc.bean.Users;

/**
 * 
 * 定义泛型接口，用于数据库的基本操作
 * 将所有的操作方法写到接口去
 * 
 * @author admin
 *
 */

/**
 *    代码的抽象，封装
 * @author admin
 *
 * @param <T>
 */

public interface IBaseDao<T> {
	
	/**
	 * 新增
	 * @param param
	 * @return
	 */
	public boolean add(T param);
	/**
	 * 修改
	 * @param param
	 * @return
	 */
	public boolean edit(T param);
	/**
	 * 
	 * 删除
	 * @param param
	 * @return
	 */
	public boolean deleteById(int id);
	/**
	 * 
	 * 查询(根据主键查询)
	 * @param param
	 * @return
	 */
	public T findById(int id);
	/**
	 * 
	 * 查询所有记录
	 * @return
	 */
	public List<T> findAll();
	
	/**
	 * 
	 * 查询所有记录
	 * @param param
	 * @return
	 */
    public List<T> findByExample(T param);
	
    /**
     * 
     * 分页查询 
     * @param page 页码，从1开始，1表示第一页
     * @param size 
     * @return
     */
    
    public List<T> findByPager(int page,int size);
    
    
    
    
    
    
    /**
     * 根据指定的id数组，进行批量删除
     * 
     * @return
     */
    public int deleteByIds(int[] ids);
   
    /***
     * 批量新增
     * 
     * @param users
     * @return
     */
    public int addAll(List<Users> users);
    
    /***
     * 批量修改
     * 
     * @param users
     * @return
     */
    public int editAll(List<Users> users);
	
}












































































































